開機啟動方法有3種
1.在OS上操作:在開始功能表的 "啟動" 加入程式的捷徑/放到啟動資料夾,開啟資料夾cmd:shell:startup
2.用C#寫入機碼
3.用 Windows Service 專案來開發,這樣就可以直接在設定服務時,開機啟動
我們這裡要做,用C#寫入機碼,讓AP於開機啟動
新增一個checkbox chkAutoOpen
新增一個button BtnSave
新增一個textbox txLog
勾選chkAutoOpen,按下按鈕,開始新增機碼
不勾選chkAutoOpen,按下按鈕,開始刪除機碼
Form打開時,chkAutoOpen會依目前機碼狀態顯示勾選或不勾選
這段是
新增機碼/檢查機碼是否存在/刪除機碼 的code
class addToRegForRun
{
private static RegistryKey getRunKey()
{
RegistryKey rk1 = Registry.LocalMachine;
RegistryKey rk2 = rk1.CreateSubKey("SOFTWARE");
RegistryKey rk3 = rk2.CreateSubKey("Microsoft");
RegistryKey rk4 = rk3.CreateSubKey("Windows");
RegistryKey rk5 = rk4.CreateSubKey("CurrentVersion");
RegistryKey rk6 = rk5.CreateSubKey("Run");
return rk6;
}
public bool chk(string key, System.Windows.Forms.TextBox txLog)
{
bool result = true;
//2. 註冊到registry file中讓開機自動啟動
//using Microsoft.Win32;
RegistryKey rk6 = getRunKey();
object ret = rk6.GetValue(key, "找不到");
txLog.Text += key + " : " + ret.ToString() + Environment.NewLine;
rk6.Close();
if (ret.ToString() == "找不到")
result = false;
return result;
}
public void add(string key, string src_file)
{
//2. 註冊到registry file中讓開機自動啟動
RegistryKey rk6 = getRunKey();
rk6.SetValue(key, src_file);
rk6.Close();
}
public void remove(string key)
{
//2. 註冊到registry file中讓開機自動啟動
//using Microsoft.Win32;
RegistryKey rk6 = getRunKey();
object ret = rk6.GetValue(key, "找不到");
if (ret.ToString() != "找不到")
rk6.DeleteValue(key);
rk6.Close();
}
}
載入前,先判斷是否已存在機碼,如果已存在,check =true
private void Form2_Load(object sender, EventArgs e)
{
addToRegForRun reg = new addToRegForRun();
string key = "RemoteCallC";
chkAutoOpen.Checked = reg.chk(key,txLog);
}
執行按鈕
addToRegForRun reg = new addToRegForRun();
string key = "RemoteCallC";
string value = System.Environment.CommandLine.Replace("\"", ""); //會取得程式的位址加雙引號,所以要移掉
if (chkAutoOpen.Checked)
{
reg.add(key, value);
reg.chk(key,txLog);
}
else
reg.remove(key);
MessageBox.Show("end");
新增機碼後,用chkreg檢查 & 可到msconfig中查看,是否已新增
刪除機碼後,用chkreg檢查 & 可到msconfig中查看,是否已刪除
有人說,可能會被防毒軟體的主動防禦擋到 須注意
https://msdn.microsoft.com/zh-tw/library/microsoft.win32.registrykey.aspx
http://end-note.zipko.info/377.html
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20091027161244JD5&fumcde=FUM20050124192253INM